<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no" >
    <!-- user-scalable=no 禁止移动端屏幕缩放 -->
    <title>click延时解决方案</title>
</head>
<body>
    <script>
        // 封装tap 解决click 300ms 延时
        function tap (obj,callback) {
            var isNove = false;
            var startTime = 0; //记录触摸时候的事件变量
            obj.addEventListener('touchstart',function(e){
                startTime = Date.now(); //记录触摸时间
            })
            obj.addEventListener('touchmove',function(e){
                isNove = true; //看看时候有滑动，有滑动算拖拽，不算点击
            })
            obj.addEventListener('touchend',function(e){
                if(!isNove && (Date.now() - startTime) < 150){
                    // 如果手指触摸和离开时间小于150ms 算点击
                    callback && callback(); //执行回调函数
                }
                isNove = false; //取反 重置
                startTime = 0;
            })
        }
        // 调用
        tap(div,function(){})
    </script>
</body>
</html>